package com.datacenter.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户申请记录实体类
 * 
 * 业务含义：
 * 记录用户申请资源访问权限的完整流程，包括申请时间、审批时间、审批状态
 * 用于分析审批效率、识别审批瓶颈、评估资源访问控制效果
 */
@Data
@TableName("ods_user_application")
public class UserApplication {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 资源ID
     * 业务含义：申请访问的资源ID
     */
    private Long resourceId;
    
    /**
     * 用户ID
     * 业务含义：申请用户的唯一标识
     */
    private String userId;
    
    /**
     * 部门
     * 业务含义：申请用户所属部门
     */
    private String department;
    
    /**
     * 申请时间
     * 业务含义：用户提交申请的时间
     */
    private LocalDateTime applicationTime;
    
    /**
     * 审批时间
     * 业务含义：管理员完成审批的时间
     */
    private LocalDateTime approvalTime;
    
    /**
     * 申请状态
     * 业务含义：PENDING-待审批，APPROVED-已通过，REJECTED-已拒绝
     */
    private String status;
    
    /**
     * 审批时长
     * 业务含义：从申请到审批完成的小时数，用于效率分析
     */
    private Integer approvalDuration;
}
